package com.biosimilarity.naturalselection.model.dataset;
import com.biosimilarity.naturalselection.model.dataset.Absyn.*;
/** BNFC-Generated Abstract Visitor */
public class AbstractVisitor<R,A> implements AllVisitor<R,A> {
/* RecordExpr */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.Joined p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.Isolated p, A arg) { return visitDefault(p, arg); }

    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.Consed p, A arg) { return visitDefault(p, arg); }

    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.Contexted p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.Referenced p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.Collected p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.Emptied p, A arg) { return visitDefault(p, arg); }


    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.RecordExpr p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* Binding */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.BindingExpr p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.Binding p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* RecordPtn */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.RecordDestructor p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.RecordLiteral p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.RecordPtn p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* RecordVariable */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.RecordIdent p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.RecordWild p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.RecordVariable p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* CollectionExpr */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.Extension p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.Intension p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.CollectionExpr p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* FieldFormals */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.FieldFormalSpec p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.FieldFormals p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* ExtensionBodyExpr */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ExtensionBody p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.ExtensionBodyExpr p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* IntensionBodyExpr */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.IntensionBody p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.IntensionBodyExpr p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* FieldExpr */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.FieldDecl p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.FieldActual p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.FieldExpr p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* FieldName */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.FieldIdent p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.FieldName p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* TupleExpr */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.TupleSumExpr p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.TupleBaseExpr p, A arg) { return visitDefault(p, arg); }

    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.TupleMultExpr p, A arg) { return visitDefault(p, arg); }


    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.TupleExpr p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* TupleDeclOrCond */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ConditionIn p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.DeclIn p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.TupleDeclOrCond p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* TuplePtn */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.TuplePtnExpr p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.TuplePtn p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* TupleGen */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.TupleGenExpr p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.TupleGen p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* TupleCond */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.TupleSatExpr p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.TupleCompExpr p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.TupleCond p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* TupleCondition */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.DisjunctTupleCondition p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ConjunctTupleCondition p, A arg) { return visitDefault(p, arg); }

    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.NegatedTupleCondition p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.StructuralTupleCondition p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.BaseTupleCondition p, A arg) { return visitDefault(p, arg); }


    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.TupleCondition p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* StructureTupleCondition */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.TupleValCond p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.StructureTupleCondition p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* GroundTupleCondition */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.TupleLogicGround p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.GroundTupleCondition p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* ValueCondition */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.DisjunctValueCondition p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ConjunctValueCondition p, A arg) { return visitDefault(p, arg); }

    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.NegatedValueCondition p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.StructuralValueCondition p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.BaseValueCondition p, A arg) { return visitDefault(p, arg); }


    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueCondition p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* GroundValueCondition */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueLogicGround p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.GroundValueCondition p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* StructureValueCondition */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueRecCond p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueListCond p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueSetCond p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueLitCond p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.StructureValueCondition p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* RecordCondition */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueRecBodyCond p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.RecordCondition p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* LogicalGround */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.Verity p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.Absurdity p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.Nullity p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.LogicalGround p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* FieldType */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.FieldTypeExpr p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.FieldType p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* TypeExpr */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ArrayTypeExpr p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.RcrdTypeExpr p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.RecTypeExpr p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.RefTypeExpr p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.CollTypeExpr p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.GroundTypeExpr p, A arg) { return visitDefault(p, arg); }

    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.TypeExpr p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* CollType */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.LListTypeExpr p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.SetTypeExpr p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.TupleTypeExpr p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.CollType p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* TypeName */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.TypeIdent p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.TypeName p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* GroundType */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.GroundInteger p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.GroundDouble p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.GroundString p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.GroundChar p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.GroundType p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* TypeFormals */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.TypeParameters p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.TypeFormals p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* Comparison */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.Equality p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.Less p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.More p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.LEq p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.GEq p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.Comparison p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* ValueExpr */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueAddExpr p, A arg) { return visitDefault(p, arg); }

    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueMultExpr p, A arg) { return visitDefault(p, arg); }

    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueArrAccExpr p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueNegExpr p, A arg) { return visitDefault(p, arg); }

    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueVarExpr p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueLitExpr p, A arg) { return visitDefault(p, arg); }

    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueExpr p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* ValueVariable */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueIdent p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueVariable p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* ValueLiteral */
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueRecLit p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueRecProjLit p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueListLit p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueSetLit p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueIntLit p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueDoubleLit p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueStringLit p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueCharLit p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.naturalselection.model.dataset.Absyn.ValueLiteral p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }

}
